Utilizing a dialectical model in a question answering system

ABSTRACT

A method, system or computer usable program product for utilizing a dialectical model for providing an answer to a user query including receiving a query from a user; applying NLP to the query to generate a first set of NLP structures; generating a contrary set of NLP structures contrary to the user query; evaluating the first set of NLP structures to identify a first set of evidence; evaluating the contrary set of NLP structures to identify a second set of evidence; evaluating a first set of hypotheses from the first set of NLP structures based by the first and second set of evidence, and a contrary set of hypotheses from the contrary set of NLP structures based by the first and second set of evidence, to determine a set of answers to the user query; and providing the set of answers to the user.

BACKGROUND

1. Technical Field

The present invention relates generally to information retrieval, and in particular, to a computer implemented method for utilizing a dialectical model in a question answering system.

2. Description of Related Art

An information retrieval system can be organized into a question/query and answer generation system (QA system) where the user provides a question or query and the system provides an answer based on a corpus of data. The corpus of data may be predefined or may be open ended such as the internet. An input question or query may be analyzed using natural language processing or other techniques to extract the major features of the question. The question analysis could be closed domain (e.g. limited to the medical field) or open domain. A corpus of data can then be analyzed to identify possible sources for a response to the question. Those sources may be analyzed to derive an answer to the input question. The answer is then provided to the user.

SUMMARY

The illustrative embodiments provide a method, system, and computer usable program product for utilizing a dialectical model for providing an answer to a user query including receiving a query from a user; applying NLP to the query to generate a first set of NLP structures; generating a contrary set of NLP structures contrary to the user query; evaluating the first set of NLP structures to identify a first set of evidence; evaluating the contrary set of NLP structures to identify a second set of evidence; evaluating a first set of hypotheses from the first set of NLP structures based by the first and second set of evidence, and a contrary set of hypotheses from the contrary set of NLP structures based by the first and second set of evidence, to determine a set of answers to the user query; and providing the set of answers to the user.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, further objectives and advantages thereof, as well as a preferred mode of use, will best be understood by reference to the following detailed description of illustrative embodiments when read in conjunction with the accompanying drawings, wherein:

FIG. 1 is a block diagram of an illustrative data processing system in which various embodiments of the present disclosure may be implemented;

FIG. 2 is a block diagram of an illustrative network of data processing systems in which various embodiments of the present disclosure may be implemented;

FIG. 3 is a block diagram of a query answering machine utilizing a dialectical model in which various embodiments may be implemented;

FIG. 4 is a flow diagram of a query answering machine utilizing a dialectical model in which various embodiments may be implemented; and

FIG. 5 is a block diagram of a data record in which various embodiments may be implemented.

DETAILED DESCRIPTION

Processes and devices may be implemented utilizing a dialectical model in a query answering system. These processes and apparatuses may be implemented and utilized as will be explained with reference to the various embodiments below.

FIG. 1 is a block diagram of an illustrative data processing system in which various embodiments of the present disclosure may be implemented. Data processing system 100 is one example of a suitable data processing system and is not intended to suggest any limitation as to the scope of use or functionality of the embodiments described herein. Regardless, data processing system 100 is capable of being implemented and/or performing any of the functionality set forth herein such as utilizing a dialectical model in a query answering system.

In data processing system 100 there is a computer system/server 112, which is operational with numerous other general purpose or special purpose computing system environments, peripherals, or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with computer system/server 112 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices, and the like.

Computer system/server 112 may be described in the general context of computer system-executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types. Computer system/server 112 may be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.

As shown in FIG. 1, computer system/server 112 in data processing system 100 is shown in the form of a general-purpose computing device. The components of computer system/server 112 may include, but are not limited to, one or more processors or processing units 116, a system memory 128, and a bus 118 that couples various system components including system memory 128 to processor 116.

Bus 118 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnects (PCI) bus.

Computer system/server 112 typically includes a variety of non-transitory computer system usable media. Such media may be any available media that is accessible by computer system/server 112, and it includes both volatile and non-volatile media, removable and non-removable media.

System memory 128 can include non-transitory computer system readable media in the form of volatile memory, such as random access memory (RAM) 130 and/or cache memory 132. Computer system/server 112 may further include other non-transitory removable/non-removable, volatile/non-volatile computer system storage media. By way of example, storage system 134 can be provided for reading from and writing to a non-removable, non-volatile magnetic media (not shown and typically called a “hard drive”). Although not shown, a USB interface for reading from and writing to a removable, non-volatile magnetic chip (e.g., a “flash drive”), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided. In such instances, each can be connected to bus 118 by one or more data media interfaces. Memory 128 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of the embodiments. Memory 128 may also include data that will be processed by a program product.

Program/utility 140, having a set (at least one) of program modules 142, may be stored in memory 128 by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. Program modules 142 generally carry out the functions and/or methodologies of the embodiments. For example, a program module may be software for utilizing a dialectical model in a query answering system.

Computer system/server 112 may also communicate with one or more external devices 114 such as a keyboard, a pointing device, a display 124, etc.; one or more devices that enable a user to interact with computer system/server 112; and/or any devices (e.g., network card, modem, etc.) that enable computer system/server 112 to communicate with one or more other computing devices. Such communication can occur via I/O interfaces 122 through wired connections or wireless connections. Still yet, computer system/server 112 can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter 120. As depicted, network adapter 120 communicates with the other components of computer system/server 112 via bus 118. It should be understood that although not shown, other hardware and/or software components could be used in conjunction with computer system/server 112. Examples, include, but are not limited to: microcode, device drivers, tape drives, RAID systems, redundant processing units, data archival storage systems, external disk drive arrays, etc.

FIG. 2 is a block diagram of an illustrative network of data processing systems in which various embodiments of the present disclosure may be implemented. Data processing environment 200 is a network of data processing systems such as described above with reference to FIG. 1. Software applications such as for utilizing a dialectical model in a query answering system may execute on any computer or other type of data processing system in data processing environment 200. Data processing environment 200 includes network 210. Network 210 is the medium used to provide simplex, half duplex and/or full duplex communications links between various devices and computers connected together within data processing environment 200. Network 210 may include connections such as wire, wireless communication links, or fiber optic cables.

Server 220 and client 240 are coupled to network 210 along with storage unit 230. In addition, laptop 250 and facility 280 (such as a home or business) are coupled to network 210 including wirelessly such as through a network router 253. A mobile phone 260 may be coupled to network 210 through a mobile phone tower 262. Data processing systems, such as server 220, client 240, laptop 250, mobile phone 260 and facility 280 contain data and have software applications including software tools executing thereon. Other types of data processing systems such as personal digital assistants (PDAs), smartphones, tablets and netbooks may be coupled to network 210.

Server 220 may include software application 224 and data 226 for utilizing a dialectical model in a query answering system or other software applications and data in accordance with embodiments described herein. Storage 230 may contain software application 234 and a content source such as data 236 for utilizing a dialectical model in a query answering system. Other software and content may be stored on storage 230 for sharing among various computer or other data processing devices. Client 240 may include software application 244 and data 246. Laptop 250 and mobile phone 260 may also include software applications 254 and 264 and data 256 and 266. Facility 280 may include software applications 284 and data 286. Other types of data processing systems coupled to network 210 may also include software applications. Software applications could include a web browser, email, or other software application for utilizing a dialectical model in a query answering system.

Server 220, storage unit 230, client 240, laptop 250, mobile phone 260, and facility 280 and other data processing devices may couple to network 210 using wired connections, wireless communication protocols, or other suitable data connectivity. Client 240 may be, for example, a personal computer or a network computer.

In the depicted example, server 220 may provide data, such as boot files, operating system images, and applications to client 240 and laptop 250. Server 220 may be a single computer system or a set of multiple computer systems working together to provide services in a client server environment. Client 240 and laptop 250 may be clients to server 220 in this example. Client 240, laptop 250, mobile phone 260 and facility 280 or some combination thereof, may include their own data, boot files, operating system images, and applications. Data processing environment 200 may include additional servers, clients, and other devices that are not shown.

In the depicted example, data processing environment 200 may be the Internet. Network 210 may represent a collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) and other protocols to communicate with one another. At the heart of the Internet is a backbone of data communication links between major nodes or host computers, including thousands of commercial, governmental, educational, and other computer systems that route data and messages. Of course, data processing environment 200 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN). FIG. 2 is intended as an example, and not as an architectural limitation for the different illustrative embodiments.

Among other uses, data processing environment 200 may be used for implementing a client server environment in which the embodiments may be implemented. A client server environment enables software applications and data to be distributed across a network such that an application functions by using the interactivity between a client data processing system and a server data processing system. Data processing environment 200 may also employ a service oriented architecture where interoperable software components distributed across a network may be packaged together as coherent business applications.

FIG. 3 is a high level block diagram of a query answering machine utilizing a dialectical model in which various embodiments may be implemented. A user 300 may be utilizing a user device 305 to provide a natural language question to a question (or query) answering (QA) system 310 to obtain an answer to the user question or other type of query. For example, the user query may be a declarative statement and the QA system is expected to verify that declarative statement by treating it as a query. For another example, the user query may be in the form of an answer and the QA system generates a question to which the answer answers. Also, the answers to the queries may be a single best (most confident) answer, a set of best answers (e.g., top 5), or even a pro and con sets of answers. Other types of queries and answers may be utilized and may be managed through the use of user preferences, prior instructions, etc. User 300 may be utilizing a mobile device, such as a mobile phone, tablet, or laptop, or a non-mobile device such as a desktop computer or a server station. User device 305 can include a user interface 306 or other type of application to interface with the user. User interface 306 may include speech recognition technology or other technology to enhance user input and output to the user. QA system 310 may be located on the user device, or on a nearby or remote system such as a server or across multiple servers such as a cloud implementation. Communication between user device 305 and QA system 310 may be established across a network or the internet.

Question (or query) answering (QA) system 310 includes a natural language processing (NLP) engine 320, a negation engine 325, an answer generator 330, a corpus 340, an answer analyzer 350 and a merge processor 360. NLP engine 320 is utilized to derive meaning from natural language. That is, a user provided natural language question or other type of query is analyzed by NLP engine 320 by parsing, syntactical analysis, morphological analysis, and other processes including statistical modeling and statistical analysis. The type of NLP analysis can vary by language and other considerations. The NLP engine analysis is utilized to generate a first set of NLP structures which can be utilized by a computer to identify and generate potential answers to that query. These NLP structures include a translation and/or interpretation of the user query, including synonymous variants thereof. NLP engine 320 can also be utilized for answer generator 330 to convert information from computer databases or other corpus 340 into natural language.

NLP engine utilizes negation engine 325 to generate a contrary or otherwise opposing second set of NLP structures which represent an opposite polarity query to the user query, including synonymous variations thereof. Having an opposing second set of NLP structures for searching increases the breadth of a search for answers as well as provides an additional perspective for finding an answer based on that search, thereby potentially improving the likelihood of finding a correct answer for the underlying query. This approach can be referred to as a dialectical model. The type of opposite polarity query represented by the second set of NLP structures can vary depending on the type of user query provided. For example, a superlative style question (e.g., “What is the best . . . ”) may be negated with an opposing superlative style question (e.g., “What is the worst . . . ” or “What is the least . . . ”). The NLP structures from both the NLP engine and the negation engine are passed to answer generator 330.

NLP engine 320 and negation engine 325 may be separate structures or programs where NLP engine 320 processes the natural language from the user and then passes the resulting NLP structures to negation engine 325 for negation. However, NLP engine 320 and negation engine 325 may be tightly coupled or otherwise grouped as a common structure or program as NLP engine 321. Also, NLP engine 320 and negation engine 321 may both process the natural language from the user in parallel. That is, the NLP engine can process the natural language query to generate a set of NLP structures representing the user query and the negation engine can also process the natural language query to generate a set of negated NLP structures representing a negation of the user query, in parallel or in series. Many other types of alternative structures can be utilized.

Answer generator 330 is a search engine for obtaining possible answers to the user query from a corpus 340. Answer generator 330 utilizes NLP structures (i.e., the first set derived from the user query and the second set representing an opposite polarity query, and including synonymous variations of both) to identify and obtain these possible answers from corpus 340. Answer generator can include multiple processors or software threads (i.e., engines) working in parallel with each engine handling a set of NLP structures or individual NLP structures such as one variant of the user query or negation thereof. Corpus 340 is an information database or answer source knowledge database containing sources of both structured and unstructured information which can contain possible answers to the user query. Corpus 340 can include documents, typed lists, web pages and other sources of information. These sources may be in raw form or are preferably derived from raw sources. That is, raw sources of information, such as found on the internet, may be crawled by search engines to generate work use lists with links and other information for generating a corpus that is easier for the answer generator to search. The source of each answer is retained for use by answer analyzer 350 as described below.

Answer analyzer 350 analyzes the sources of information generated by the answer generator and the use of search terms or other information contained in the sources of information. This analysis is utilized to provide weights for each of those sources of information for each of the first set of NLP structures representing the user query and for each the second set of NLP structures representing the opposite polarity query. This weighting is performed on each source of information for the NLP structures of the user query and of the NLP structures representing the opposite polarity query. This weighting can include several factors such as the type of source (e.g., an academic article or medical journal may have greater weight, a magazine article may have lower weight), analysis of the text of each source of information for strengthening or weakening language in relation with any search terms or keywords (e.g., “can” will have a greater weight than “may”, “will” will have a greater weight than “should”, “verified” will have a greater weight than “unverified”), as well as analysis of potentially contradictory statements such as if then statements. Each source of information is then given an overall weight for the NLP structures of the user query and its opposite polarity based on these factors. As a result, each source of information may have two (or more) weights, one for the NLP structures of the user query (or every variation thereof) and one for the NLP structures representing the opposite polarity query (or every variation thereof). Answer analyzer can include multiple processors or software threads (i.e., engines) working in parallel with each engine handling a set of NLP structures such as one variant of the user query or negation thereof. Answer generator and answer analyzer can be tightly coupled common structure or program as answer engine 331, such as with one answer generator engine for each answer analyzer engine, or other alternative configurations.

Merge processor 360 then merges all the sources of information and their weights to rank the results based on the evidence provided and machine learning to generate a set of statistically most confident answer(s) to the user query based on the analysis described above. As described earlier, the answer(s) may be a single answer, a set of answers, a set of pro and con answers, etc. This merge process includes using the first and second sets of NLP structures to help provide the statistically most confident answer(s). That is, if the user query has a low confidence answer, but the opposite polarity query has a high confidence answer, then the answer to the opposite polarity answer may be the statistically most confident answer. For example, if the user query is “Is John Doe a citizen of the United States?” and the opposite polarity query is “Is John a citizen of another country besides the United States”, then there may be weak evidence of John Doe being a citizen of the United States, but stronger evidence to the opposite polarity query that John Doe is a citizen of Australia. The answer may then become “No, John Doe is a citizen of Australia”. Merge processor 360 can then utilize NLP engine 320 to generate the answer in natural language form for feedback to the user.

One example of a question (or query) and answer (QA) system which may be used in conjunction with the principles described herein is described in U.S. Patent Application Publication No. 2011/0125734, which is herein incorporated by reference in its entirety. The QA system is configured with one or more a QA system pipelines that receive inputs from various sources. Each QA system pipeline has a plurality of stages for processing an input query, the corpus of data, and generating answers for the input query based on the processing of the corpus of data. For example, the QA system may receive input from a network, a corpus of electronic documents, QA system users, or other data and other possible sources of input. In one embodiment, the content creator creates content in a document of the corpus of data for use as part of a corpus of data with the QA system. QA system users may access the QA system via a network connection or an Internet connection to the network, and may input queries to the QA system that may be answered by the content in the corpus of data. The queries are typically formed using natural language. The QA system interprets the query and provides a response to the QA system user containing one or more answers to the query, e.g., in a ranked list of candidate answers.

The QA system may be the Watson™ QA system available from International Business Machines Corporation of Armonk, N.Y., which is augmented with the mechanisms of the invention described hereafter. The Watson™ QA system parses an input query to extract the major features of the query, that in turn are then used to formulate queries that are applied to the corpus of data. Based on the application of the queries to the corpus of data, a set of candidate answers to the input query, are generated by looking across the corpus of data for portions of the corpus of data that have some potential for containing a valuable response to the input query. The Watson™ QA system then performs deep analysis on the language of the input query and the language used in each of the portions of the corpus of data found during the application of the queries using a variety of reasoning algorithms. There may be hundreds or even thousands of reasoning algorithms applied, each of which performs different analysis, e.g., comparisons, and generates a score. For example, some reasoning algorithms may look at the matching of terms and synonyms within the language of the input query and the found portions of the corpus of data. Other reasoning algorithms may look at temporal or spatial features in the language, while others may evaluate the source of the portion of the corpus of data and evaluate its veracity.

The scores obtained from the various reasoning algorithms indicate the extent to which the potential response is inferred by the input query based on the specific area of focus of that reasoning algorithm. Each resulting score is then weighted against a statistical model. The statistical model captures how well the reasoning algorithm performed at establishing the inference between two similar passages for a particular domain during the training period of the Watson™ QA system. The statistical model may then be used to summarize a level of confidence that the Watson™ QA system has regarding the evidence that the potential response, i.e. candidate answer, is inferred by the query. This process may be repeated for each of the candidate answers until the Watson™ QA system identifies candidate answers that surface as being significantly stronger than others and thus, generates a final answer, or ranked set of answers, for the input query. More information about the Watson™ QA system may be obtained, for example, from the IBM Corporation website, IBM Redbooks, and the like. For example, information about the Watson™ QA system can be found in Yuan et al., “Watson and Healthcare,” IBM developerWorks, 2011 and “The Era of Cognitive Systems: An Inside Look at IBM Watson and How it Works” by Rob High, IBM Redbooks, 2012.

FIG. 4 is a flow diagram of a query answering machine utilizing a dialectical model in which various embodiments may be implemented. In a first step 400, the system receives a natural language question or other type of query from a user. For example, the user query may be a declarative statement and the QA system is expected to verify that declarative statement by treating it as a query. For another example, the user query may be in the form of an answer and the QA system generates a question to which the answer answers. Also, the answers to the queries may be a single best (most confident) answer, a set of best answers (e.g., top 5), or even a pro and con sets of answers. Other types of queries and answers may be utilized and may be managed through the use of user preferences, prior instructions, etc. This can be a natural language question or query received from the user through a user interface on a user device such as a mobile phone, tablet, or laptop, or a non-mobile device such as a desktop computer or a server station. The user interface may include speech recognition technology or other technology to enhance user input and output to the user. The user interface may be located on the user device, or on a nearby or remote system such as a server or across multiple servers such as a cloud implementation. Communication between the user device 305 and QA system 310 may be established across a network or the internet.

Then in step 405, the user interface passes the recognized natural language user query to an NLP engine for processing. Then in step 410, the NLP engine analyzes the user query by parsing, syntactical analysis, morphological analysis, and other processes including statistical modeling and statistical analysis. The NLP engine analysis is utilized to generate a first set of NLP structures, such as a first order logic structure, suitable for subsequent computer processing. These NLP structures include a translation and/or interpretation of the user query, including synonymous variants thereof. That is, the NLP structures representing or corresponding to the user query are broadened with synonymous NLP structures by broadening the queries semantically without broadening the underlying query. For example, the query “Is a daily aspirin regime good for children” can be semantically broadened to “Is a daily regime of acetylsalicylic acid good for children”. Similarly, the input query “Was Mark Twain born in 1836?” can be expanded to “Was Samuel Clemens born in 1836?” This allows for more sources of information to be identified, thereby improving the possibility of providing a correct answer. The generation of synonymous NLP structures could be a separate and subsequent step to the generation of the original NLP structure representing the user query. The NLP algorithm utilized can differ based on the language of the user query, the subject matter of the user query, and other factors which could affect the analysis of the user query. Processing then continues to step 415.

Subsequently in step 415, the NLP structures corresponding to the user query are negated. That is, the first set of NLP structures representing the user query are converted into polar opposite or other type of opposing or second set of NLP structures, including synonymous variants thereof, representing a negation of the original user query. For example, if the user query is “Is a daily aspirin regime good for children”, it can be converted into the set of opposing queries such as “Is a daily aspirin regime bad for children” or “Is aspirin contra-indicated for children”. In another example, if the query is “Is passenger Smith a flight risk?”, the opposing query “Is passenger Smith a member of TSA PRE” would be generated. Similarly, if the query is close ended but not polar, it can be converted into multiple queries. For example, if the query is “Was Mark Twain born in 1834, 1835 or 1836?” can be converted into “Was Mark Twain born in 1834?”, “Was Mark Twain born in 1835?” and “Was Mark Twain born in 1836?”. The generation of synonymous negated NLP structures could be a separate and subsequent step to the generation of the NLP structure representing a negation of the user query.

Alternatively, NLP engine and negation engine may both process the natural language from the user in parallel. That is, the NLP engine can process the natural language query to generate a set of NLP structures representing the user query and the negation engine can also process the natural language query to generate a set of negated NLP structures representing a negation of the user query, in parallel or in series. Many other types of alternative processes and structures and can be utilized.

In step 420, the answer generator searches the corpus for sources of possible or candidate answers to each set of NLP structures or even each NLP structure. This searching process can be performed for each set of NLP structures or for each NLP structure (such as one variant of the user query or negation thereof) in series or parallel. The corpus is a set of information sources (also referred to herein as evidence) which can be searched by a search engine using the NLP structures. The corpus can be closed domain (e.g., medical) or open domain (e.g., the internet). Because the NLP structures for each user query are different, each NLP structure may be utilized generate different sources of information. By using a second set of NLP structures representing a negation of the user query, a greater set of information sources (evidence) can be identified for candidate answers.

Then in step 425, the possible sources for each NLP structure are then evaluated and weighted for each of the first set of NLP structures representing the user query and for each the second set of NLP structures representing the opposite polarity query. The possible sources for each set of NLP structures or each NLP structure may be evaluated in parallel or in series depending on the implementation. No deduplication occurs at this step in this embodiment, although alternative embodiments could perform deduplication at this step. In addition, a source of evidence identified for candidate answers for one NLP structure may also be utilized as a source for candidate answers for another or even opposing NLP structure. That is, a source of evidence identified for the first set of NLP structures can be evaluated for contradictory answers for the second set of NLP structures and vice versa. This step includes identifying the strength of each source of evidence, the strength of each candidate answer identified in the source, and for contradictory candidate answers within each source. For example, certain medical journals may be considered as reliable sources of information. The use of certain words such as “always” may be considered a stronger source than words such as “generally”. Contradictory statements can include if/then statements (e.g., “if the child is not running a fever, then . . . ”) and other statements indicating a contradiction (e.g., “Prior research showed that aspirin is good for children. However, such research was later shown to include researcher bias”). Processing then continues to step 430.

In step 430, the candidate answers supporting each branch of the dialectical model are then merged to generate a set of hypothesis for evaluation based on the candidate answers. Evidence merging can happen in various ways depending on the domain and use case. An example merging function may deduplicate the evidence sources that support each hypothesis within the same set (either pro or con). In another embodiment, the merging function might sum the overall number of document hits supporting each hypothesis for each dialectical branch (such as pro and con). Furthermore, evaluating the first set of hypotheses includes evaluating the first set of candidate answers supported by the first set of evidence and evaluating contradictory candidate answers supported by the second set of evidence. Also evaluating the second set of hypotheses includes evaluating the second set of candidate answers supported by the second set of answers and evaluating contradictory candidate answers supported by the first set of evidence. Then in step 435, a set of answers will be generated or otherwise provided for each hypothesis based on the compilation of evidence and candidate answers. Each answer will be provided with a confidence or other weighting of the answer for that hypothesis.

Subsequently in step 440, the answers provided for each hypothesis are compared to see if they agree. For example, if the user query is a polar question, then there will be a first hypothesis with a first answer and a second hypothesis with a second answer. In this polar question example, if the first hypothesis is true and the second hypothesis is false, then they concur. In the example of a close ended non-polar question, if one hypothesis is true and all the other hypotheses are false, then the answers agree. If so, then processing continues to step 460, otherwise processing continues to step 450.

In step 450, the most confident hypotheses are identified. These are the most confident answers with the greatest confidence, or if all hypotheses are false, the false hypotheses with the least confidence. Then in step 455, the most confident hypotheses are translated or otherwise converted into a set of answers to the user query, including the confidence levels for the answers. The NLP processor may be utilized for generating these answers. Processing then continues to step 470.

In step 460, the most confident hypotheses for each branch of the NLP structures are identified as described above in step 450. Then in step 462, the most confident answers for each branch of the NLP structures are converted into a set of answers to the user query, including the confidence in each answer. Then in step 465, the confidence in both sets of answers (to the user query and its negation) are then normalized to take into account the confidence of the other set of answers. This step may not be necessary if both sets of answers were generated together. The NLP processor may be utilized for generating this answer. Finally, in step 470, the set of answers including confidence levels is converted back to natural language and provided to the user. As discussed above, the types of answers and format provided may differ based on user preferences or other instructions. For example, the user may request a set of 3 most confident answers, a set of pro and con answers, answers in the form of a question, etc. Many other variations of this process can be implemented by one of ordinary skill in the art.

FIG. 5 is a block diagram of a data record 500 in which various embodiments may be implemented. In this example, a single record is generated for each NLP structure. Multiple sources can be identified in record 500 by using a variable length record. There can be one set of records for the user query and another set of records for the negation of the user query, each record representing one NLP structure. Alternative embodiments may organize their data records differently or utilize other type of records in implementing various embodiments.

Record 500 can include a copy of the user query 505, a query type 510, an NLP structure 515 corresponding to the user query, a source 520, a source identifier 525, a source type 530, and a source weight 535. User query 505 can include a copy of the user query as recognized by a user interface such as through voice recognition or from the user typing in a query. The user query can come in many forms such as a question, a declarative statement, etc. The form of the user query is then provided in query type 510. A corresponding NLP structure to the user query (or a synonym or negation thereof) is provided in NLP structure 515. An information source identified in the corpus as a potential support for a candidate answer to NLP structure 515 is identified in source 520. Source 520 may have been identified during searching of the corpus with NLP structure 515, or with another NLP structure. Source identifier 525 is an identifier of the source within the corpus or other type of identifier. This is to allow analysis of the source either during the above described process or later for research or other statistical purposes. Source type 530 is a classification of the type of source. For example, the source may be a medical journal, a magazine article, etc. Source weight 535 is a weight of the source in supporting a candidate answer to NLP structure 515 such as described above with reference to step 425. If a source is identified for multiple NLP structures (in multiple records), then the source weight may vary for each NLP structure 515 and record 500.

If an NLP structure has multiple sources, then each source may have an identifier, type, and weight. This can be stored with the record as a variable length set of data. Each record 500 may be processed in parallel by separate processors. A set of records 500 can be utilized to generate a set of hypotheses and answers to the user query.

The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.

The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage media, and cache memories, which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage media during execution.

A data processing system may act as a server data processing system or a client data processing system. Server and client data processing systems may include data storage media that are computer usable, such as being computer readable. A data storage medium associated with a server data processing system may contain computer usable code such as for utilizing a dialectical model in a query answering system. A client data processing system may download that computer usable code, such as for storing on a data storage medium associated with the client data processing system, or for using in the client data processing system. The server data processing system may similarly upload computer usable code from the client data processing system such as a content source. The computer usable code resulting from a computer usable program product embodiment of the illustrative embodiments may be uploaded or downloaded using server and client data processing systems in this manner.

Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.

The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.

The terminology used herein is for the purpose of describing particular embodiments and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated. 

What is claimed is:
 1. A method for utilizing a dialectical model for providing an answer to a user query comprising: receiving, by a system, a natural language query from a user; applying, by the system, natural language processing (NLP) to the query to generate a first set of NLP structures; generating, by the system, a contrary set of NLP structures which represent an opposite polarity query to the user query; evaluating, by the system, the first set of NLP structures to identify a first set of evidence for candidate answers; evaluating, by the system, the contrary set of NLP structures to identify a second set of evidence for candidate answers; evaluating, by the system, a first set of hypotheses from the first set of NLP structures based by the first and second set of evidence for candidate answers, and a contrary set of hypotheses from the contrary set of NLP structures based by the first and second set of evidence for candidate answers, to determine a set of answers to the user query; converting, by the system, the set of answers to natural language; and providing the converted set of answers to the user.
 2. The method of claim 1, wherein generating the contrary set of NLP structures utilizes domain dependent resources.
 3. The method of claim 1 wherein the contrary set of NLP structures is generated by negating the first set of NLP structures.
 4. The method of claim 1 wherein the contrary set of NLP structures is generated by negating the user query and applying NLP processing to the negated user query.
 5. The method of claim 1 wherein evaluating the first set of NLP structures forms a first set of candidate answers supported by the first set of evidence for candidate answers; and wherein evaluating the contrary set of NLP structures forms a second set of candidate answers supported by the second set of evidence for candidate answers.
 6. The method of claim 5 wherein evaluating the first set of hypotheses includes evaluating the first set of candidate answers supported by the first set of evidence for candidate answers and evaluating contradictory candidate answers supported by the second set of evidence for candidate answers; and wherein evaluating the contrary set of hypotheses includes evaluating the second set of candidate answers supported by the second set of evidence for candidate answers and evaluating contradictory candidate answers supported by the first set of evidence for candidate answers.
 7. The method of claim 1 wherein evaluating the first and contrary set of hypotheses further comprises determining a confidence level for each answer based on the first and second set of evidence for candidate answers supporting each hypothesis.
 8. The method of claim 7 further comprising ranking the set of answers based on the confidence levels for each set of hypotheses.
 9. The method of claim 8 further comprising normalizing the confidence levels for the set of answers.
 10. A computer program product for utilizing a dialectical model for providing an answer to a user query, the computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processing circuit to cause a device to perform a method comprising: receiving, by a system, a natural language query from a user; applying, by the system, natural language processing (NLP) to the query to generate a first set of NLP structures; generating, by the system, a contrary set of NLP structures which represent an opposite polarity query to the user query; evaluating, by the system, the first set of NLP structures to identify a first set of evidence for candidate answers; evaluating, by the system, the contrary set of NLP structures to identify a second set of evidence for candidate answers; evaluating, by the system, a first set of hypotheses from the first set of NLP structures based by the first and second set of evidence for candidate answers, and a contrary set of hypotheses from the contrary set of NLP structures based by the first and second set of evidence for candidate answers, to determine a set of answers to the user query; converting, by the system, the set of answers to natural language; and providing the converted set of answers to the user.
 11. The computer program product of claim 10 wherein the contrary set of NLP structures is generated by negating the first set of NLP structures.
 12. The computer program product of claim 10 wherein evaluating the first set of NLP structures forms a first set of candidate answers supported by the first set of evidence for candidate answers; and wherein evaluating the contrary set of NLP structures forms a second set of candidate answers supported by the second set of evidence for candidate answers.
 13. The computer program product of claim 12 wherein evaluating the first set of hypotheses includes evaluating the first set of candidate answers supported by the first set of evidence for candidate answers and evaluating contradictory candidate answers supported by the second set of evidence for candidate answers; and wherein evaluating the contrary set of hypotheses includes evaluating the second set of candidate answers supported by the second set of evidence for candidate answers and evaluating contradictory candidate answers supported by the first set of evidence for candidate answers.
 14. The computer program product of claim 10 wherein evaluating the first and contrary set of hypotheses further comprises determining a confidence level for each answer based on the first and second set of evidence for candidate answers supporting each hypothesis.
 15. The computer program product of claim 14 further comprising ranking the set of answers based on the confidence levels for each set of hypotheses.
 16. A data processing system for utilizing a dialectical model for providing an answer to a user query, the data processing system comprising: a processor; and a memory storing program instructions which when executed by the processor execute steps of: receiving, by the system, a natural language query from a user; applying, by the system, natural language processing (NLP) to the query to generate a first set of NLP structures; generating, by the system, a contrary set of NLP structures which represent an opposite polarity query to the user query; evaluating, by the system, the first set of NLP structures to identify a first set of evidence for candidate answers; evaluating, by the system, the contrary set of NLP structures to identify a second set of evidence for candidate answers; evaluating, by the system, a first set of hypotheses from the first set of NLP structures based by the first and second set of evidence for candidate answers, and a contrary set of hypotheses from the contrary set of NLP structures based by the first and second set of evidence for candidate answers, to determine a set of answers to the user query; converting, by the system, the set of answers to natural language; and providing the converted set of answers to the user.
 17. The data processing system of claim 16 wherein evaluating the first set of NLP structures forms a first set of candidate answers supported by the first set of evidence for candidate answers; and wherein evaluating the contrary set of NLP structures forms a second set of candidate answers supported by the second set of evidence for candidate answers.
 18. The data processing system of claim 17 wherein evaluating the first set of hypotheses includes evaluating the first set of candidate answers supported by the first set of evidence for candidate answers and evaluating contradictory candidate answers supported by the second set of evidence for candidate answers; and wherein evaluating the contrary set of hypotheses includes evaluating the second set of candidate answers supported by the second set of evidence for candidate answers and evaluating contradictory candidate answers supported by the first set of evidence for candidate answers.
 19. The data processing system of claim 16 wherein evaluating the first and contrary set of hypotheses further comprises determining a confidence level for each answer based on the first and second set of evidence for candidate answers supporting each hypothesis.
 20. The data processing system of claim 19 further comprising ranking the set of answers based on the confidence levels for each set of hypotheses. 